package com.xuzhiguang.baidu.pan.sdk.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

/**
 * @author xuzhiguang
 * @date 2020/6/26 14:01
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public class BasicFileListParams {

    /**
     * 需要list的目录，以/开头的绝对路径，默认为 /
     */
    private String dir;

    /**
     * 排序字段，
     * time表示先按文件类型排序，后按修改时间排序，
     * name表示先按文件类型排序，后按文件名称排序，
     * size表示先按文件类型排序， 后按文件大小排序，
     * 默认为name
     */
    private String order;

    /**
     * 	该KEY存在为降序，否则为升序
     */
    private String desc;

    /**
     * 	起始位置， 从0开始
     */
    private Integer start;

    /**
     * 每页条目数，默认为1000，最大值为10000
     */
    private Integer limit;

    /**
     * 值为1时， 返回dir_empty 和 缩略图数据
     */
    private Integer web;

    /**
     * 是否只返回文件夹，1 只返回目录条目，且属性只返回path字段、0 返回所有
     */
    private Integer folder;

    /**
     * 是否返回 dir_empty 属性，1 返回、0 不返回
     */
    private Integer showEmpty;

    @Override
    public String toString() {
        return "BasicFileListParams{" +
                "dir='" + dir + '\'' +
                ", order='" + order + '\'' +
                ", desc='" + desc + '\'' +
                ", start=" + start +
                ", limit=" + limit +
                ", web='" + web + '\'' +
                ", folder=" + folder +
                ", showEmpty=" + showEmpty +
                '}';
    }

    public String getDir() {
        return dir;
    }

    public void setDir(String dir) {
        this.dir = dir;
    }

    public String getOrder() {
        return order;
    }

    public void setOrder(String order) {
        this.order = order;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public Integer getStart() {
        return start;
    }

    public void setStart(Integer start) {
        this.start = start;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getWeb() {
        return web;
    }

    public void setWeb(Integer web) {
        this.web = web;
    }

    public Integer getFolder() {
        return folder;
    }

    public void setFolder(Integer folder) {
        this.folder = folder;
    }

    public Integer getShowEmpty() {
        return showEmpty;
    }

    public void setShowEmpty(Integer showEmpty) {
        this.showEmpty = showEmpty;
    }
}
